package ControleurBelote;

import java.util.LinkedList;

public class Joueur {
	
	private TasDeCarte main;
	private String pseudo;
	private int pliPoint;
	private LinkedList<Carte> pliCarte;
	private int nombreCarteMain;
	private String identEquipe;
	private boolean belote;
	
	public Joueur (){pseudo = "";}
	
	public Joueur (String nom,String equipe){
		pseudo = nom;
		main = new TasDeCarte(8);
		setPliPoint(0);
		nombreCarteMain = 0;
		pliCarte = new LinkedList<Carte>();
		identEquipe = equipe;
		setBelote(false);
		
	}

	
	public void ajouterUneCarte(Carte carte){
		main.ajouterUneCarte(carte);
		carte.setJoueur(this);
	}
	
	public void ajouterPlusieurCarte(LinkedList<Carte> carte){
		main.ajouterPlusieursCarte(carte);
		setNombreCarteMain(carte.size());
		int i =0;
		for(i = 0;i<carte.size();i++){
			carte.get(i).setJoueur(this);
		}
	}
	
	public void enleverUneCarte(Carte carte){
		main.enleverUneCarte(carte);
	}
	
	public Carte obtenirUneCarte(int num){
		return main.obtenirCarte(num);
	}
	
	public void affecterAtout(String couleur){
		main.couleurDevientAtout(couleur);
	}
	
	public LinkedList<Carte> viderPli(){
		LinkedList<Carte> pli = pliCarte;
		pliCarte.clear();
		return pli;
	}
	
	public void ajoutPliCarte(LinkedList<Carte>pliCarte,int point){
		this.pliCarte.addAll(pliCarte);
		ajoutPliPoint(point);
	}
	
	public void ajoutPliPoint(int point){
		pliPoint+=point;
	}
	
	
	public 	LinkedList<Carte> 	getPliCarte() {return pliCarte;}
	public 	int 				getPliPoint() {return pliPoint;}
	public 	int 				getNombreCarteMain(){return nombreCarteMain;}
	public 	TasDeCarte			getMain(){return main;}
	public 	String 				getIdentEquipe() {return identEquipe;}
	public 	boolean 			getBelote() {return belote;}
	public  String 				getPseudo(){return pseudo;}


	public 	void 	setNombreCarteMain(int i)
	{nombreCarteMain = i;}
								
	public 	void 	setPliCarte(LinkedList<Carte>pliCarte,int point)
	{this.pliCarte = pliCarte;}
								
	public 	void 	setPliPoint(int point)
	{pliPoint = point;}
	
	public 	void 	setIdentEquipe(String identEquipe) 
	{this.identEquipe = identEquipe;}
	
	public 	void 	setBelote(boolean belote) 
	{this.belote = belote;}
	
	public void 	setPseudo(String s1)
	{pseudo = s1;}
	
	public void 	setMain(TasDeCarte TDC){main = TDC;}
	
	@Override
	public String toString(){
		String chaine = "";
		chaine = pseudo + " a les cartes suivantes en main :\n "
		+ main.toString();
		return chaine;
	}


	@Override
	public boolean equals(Object o){
		return ((Joueur)o).main.equals(main) && 
		identEquipe.equals(((Joueur)o).identEquipe) && 
		pseudo.equals(((Joueur)o).pseudo);
	}

}
